package com.woniuxy.goods.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.goods.dto.CatPictureListDto;
import com.woniuxy.goods.entity.GoodsCatPicture;
import com.woniuxy.goods.param.AddCatPictureParam;
import com.woniuxy.goods.param.UpdateCatPictureByCatParam;
import com.woniuxy.goods.param.UpdateCatPictureParam;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 * 类别定义图服务层接口
 * @author ...
 * @since 2024年05月27日
 */
public interface GoodsCatPictureService extends IService<GoodsCatPicture> {

    /**
     * 新增类别定义图
     * @param param 新增定义图对象
     * @return 定义图信息
     * @throws Exception
     */
    GoodsCatPicture addCatPicture(AddCatPictureParam param) throws Exception;

    /**
     * 删除类别定义图
     * @param id 定义图id
     * @return
     * @throws Exception
     */
    void delCatPicture(Integer id);

    /**
     * 修改类别定义图
     * @param param 修改定义图对象
     * @return 定义图信息
     * @throws Exception
     */
    GoodsCatPicture updateCatPicture(UpdateCatPictureParam param) throws Exception;

    /**
     * 根据类别id修改类别定义图
     * @param param 修改定义图对象
     * @return 定义图信息
     * @throws Exception
     */
    List<GoodsCatPicture> updateCatPictureByCat(UpdateCatPictureByCatParam param) throws Exception;

    /**
     * 根据id查询类别定义图
     * @param id 定义图id
     * @return 定义图信息
     * @throws Exception
     */
    GoodsCatPicture findCatPictureById(Integer id);

    /**
     * 根据类别id查询类别定义图
     * @param catId 类别id
     * @return 定义图信息集合
     * @throws Exception
     */
    CatPictureListDto findCatPictureByCatId(Integer catId) throws Exception;

    /**
     * 根据类别属性组id查询类别定义图
     * @param id 类别属性组id
     * @return 定义图信息集合
     * @throws Exception
     */
    CatPictureListDto findPictureById(Integer id) throws Exception;

    /**
     * 根查询类别自己的定义图
     * @param catId 类别id
     * @return 定义图信息集合
     * @throws Exception
     */
    List<GoodsCatPicture> findPictureByCat(Integer catId);
}
